<?php
class Precios_model extends APP_Model{
    var $producto_id = 0;
    var $precio = 0;
    var $fecha = NULL;
    var $eliminado = FALSE;

    public function __construct() {
        parent::__construct();
    }

    public function getProductoId() {
        return $this->producto_id;
    }

    public function setProductoId($producto_id) {
        $this->producto_id = $producto_id;
    }

    public function getPrecio() {
        return $this->precio;
    }

    public function setPrecio($precio) {
        $this->precio = $precio;
    }

    public function getFecha() {
        return $this->fecha;
    }

    public function setFecha($fecha) {
        $this->fecha = $fecha;
    }

    public function getEliminado() {
        return $this->eliminado;
    }

    public function setEliminado($eliminado) {
        $this->eliminado = $eliminado;
    }

    /**
     * Almacena el precio del producto, si el producto ya posee precio registrado, elimina logicamnete le precio y almacena el nuevo
     * @return boolean
     */
    function add()
    {
        $band = FALSE;
        $resultArray = $this->getByProducto(TRUE);
        if(!count($resultArray)>=1){
            //Eliminamos "logicamente" los precios anteriores
            $this->db->where('producto_id', $this->getProductoId());
            $this->db->update(
                $this->modelClassName(),
                array('eliminado' => TRUE)
            );
            $band = parent::add();
        }

        //$this->db->_error_number();
        //$this->_error_message();
        //$this->db->last_query();

        return $band;
    }

    /**
     * Consulta los datos dado indicado en identificador de producto
     * @param $includePrecio Indica si tambien se consulta por el precio
     * @return Array
     */
    function getByProducto($includePrecio = FALSE)
    {
        $this->db->where('producto_id', $this->getProductoId());
        if($includePrecio){
            $this->db->where('precio', $this->getPrecio());
        }
        $this->db->where('eliminado', $this->getEliminado());
        $query = $this->db->get($this->modelClassName());
        return $query->row_array();
    }
}
?>